package delphorm.dao.personne;



import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import delphorm.entite.personne.DroitGroupe;
import delphorm.entite.personne.GroupeCollectif;

public class ImplHibernateGroupeCollectif extends HibernateDaoSupport implements IGroupeCollectif {

	public GroupeCollectif ajouterGroupe(GroupeCollectif g) {
		getHibernateTemplate().saveOrUpdate(g);
		return g;
	}

	public void supprimerGroupe(GroupeCollectif g) {
		getHibernateTemplate().delete(g);
		
	}

	public GroupeCollectif getGroupeById(Long id) {
		String requete="from delphorm.entite.personne.GroupeCollectif g where id="+id;
		List l = getHibernateTemplate().find(requete);
		if(l.size() <= 0)
			return null;
		else
			return (GroupeCollectif)l.get(0);
	}

	public GroupeCollectif getGroupeByNom(String nom) {
		String requete="from delphorm.entite.personne.GroupeCollectif g where nom='"+nom+"'";
		List l = getHibernateTemplate().find(requete);
		if(l.size() <= 0)
			return null;
		else
			return (GroupeCollectif)l.get(0);
	}

	public List getAll() {
		return getHibernateTemplate().loadAll(GroupeCollectif.class);
	}

	public DroitGroupe getDroitGroupeById(Long idgroupe, Long idutilisateur) {
		String requete="from delphorm.entite.personne.DroitGroupe dg where utilisateur.id="+idutilisateur+" and groupe.id="+idgroupe;
		List l = getHibernateTemplate().find(requete);
		if(l.size() <= 0)
			return null;
		else
			return (DroitGroupe)l.get(0);
	}

	public List getDroitGroupeByIdGroupe(Long idgroupe) {
		String requete="from delphorm.entite.personne.DroitGroupe dg where groupe.id="+idgroupe;
		List l = getHibernateTemplate().find(requete);
		return l;
	}

	public List getDroitGroupeByIdUtilisateur(Long idutilisateur) {
		String requete="from delphorm.entite.personne.DroitGroupe dg where utilisateur.id="+idutilisateur;
		List l = getHibernateTemplate().find(requete);
		return l;
	}

	public DroitGroupe enregistrerDroitGroupe(DroitGroupe droitgroupe) {
		getHibernateTemplate().saveOrUpdate(droitgroupe);
		return droitgroupe;
	}


}
